// Tipper API
// note: Tipper is internally unicode and requires unicows.dll to function correctly on 95/98/ME
//		so you'll find a lot of wchar_t stuff in here

// translation function type
// use hContact, module and setting to read your db value(s) and put the resulting string into buff
// return buff if the translation was successful, or return 0 for failure
typedef TCHAR *(TranslateFunc)(HANDLE hContact, const char *module, const char *setting_or_prefix, TCHAR *buff, int bufflen);

typedef struct {
	TranslateFunc *tfunc;	// address of your translation function (see typedef above)
	const TCHAR *name;	// make sure this is unique, and DO NOT translate it
	DWORD id;					// will be overwritten by Tipper - do not use
} DBVTranslation;

// add a translation to tipper
// wParam not used
// lParam = (DBVTranslation *)translation
#define MS_TIPPER_ADDTRANSLATION	 "Tipper/AddTranslation"


/////////////////////
///// This service is NOT implemented by tipper - it is to be implemented by plugins that extend the basic away message services
///// so that tipper has a common interface to use
////////////////////

// wParam - (WORD)wStatus
// lParam - (char *)szProto
// returns (char *)szStatusMessage
#define MS_AWAY_GETPROTOSTATUSMESSAGE      "Away/GetProtoStatusMsg"

// wParam - (WORD)wStatus
// lParam - (wchar_t *)swzProto
// returns (wchar_t *)swzStatusMessage
#define MS_AWAY_GETPROTOSTATUSMESSAGEW     "Away/GetProtoStatusMsgW"

#ifdef _UNICODE
#define MS_AWAY_GETPROTOSTATUSMESSAGET     MS_AWAY_GETPROTOSTATUSMESSAGEW
#else 
#define MS_AWAY_GETPROTOSTATUSMESSAGET     MS_AWAY_GETPROTOSTATUSMESSAGE
#endif